//#include <iostream>
//#include <string>
//#include <vector>
//using namespace std;
//
////*************** Program ****************
//class Media {
//protected:
//	string name;
//	string company;
//public:
//	virtual void showInfo() {
//		cout << "Name: " << name << endl;
//		cout << "Company: " << company << endl;
//	}
//
//	Media(string n, string c)
//		:name(n),
//		company(c) {}
//
//
//};
//
//class AudioMedia :public Media {
//	string singer;
//public:
//	void showInfo() {
//		cout << "Audio Media:" << endl;
//		cout << "Name: " << name << endl;
//		cout << "Company: " << company << endl;
//		cout << "Singer: " << singer << endl;
//	}
//
//	AudioMedia(string n, string c, string s)
//		:Media(n, c),
//		singer(s) {}
//
//};
//
//class VideoMedia :public Media {
//	string actor;
//public:
//
//	VideoMedia(string n, string c, string a)
//		:Media(n, c),
//		actor(a) {}
//
//
//	void showInfo() {
//		cout << "Video Media:" << endl;
//		cout << "Name: " << name << endl;
//		cout << "Company: " << company << endl;
//		cout << "Actor: " << actor << endl;
//	}
//};
//
//class Software :public Media {
//	string version;
//public:
//
//	Software(string n, string c, string v)
//		:Media(n, c),
//		version(v) {}
//
//
//	void showInfo() {
//		cout << "Software:" << endl;
//		cout << "Name: " << name << endl;
//		cout << "Company: " << company << endl;
//		cout << "Version: " << version << endl;
//	}
//};
//
//class Shelf {
//	vector<Media*> list;
//public:
//	void add(Media* m) {
//		list.push_back(m);
//	}
//	void printMediaInfo() {
//		for (auto m : list) {
//			m->showInfo();
//			cout << endl;
//		}
//
//	}
//};
//
////*************** End ****************
//
//
//int main()
//{
//	string audio_name, audio_company, audio_singer;
//	string video_name, video_company, video_actor;
//	string software_name, software_company, software_version;
//
//	getline(cin, audio_name);
//	getline(cin, audio_company);
//	getline(cin, audio_singer);
//
//	getline(cin, video_name);
//	getline(cin, video_company);
//	getline(cin, video_actor);
//
//	getline(cin, software_name);
//	getline(cin, software_company);
//	getline(cin, software_version);
//
//	AudioMedia* pAudio = new AudioMedia(audio_name, audio_company, audio_singer);
//	VideoMedia* pVideo = new VideoMedia(video_name, video_company, video_actor);
//	Software* pSoftware = new Software(software_name, software_company, software_version);
//
//	Shelf shelf;
//	shelf.add(pAudio);
//	shelf.add(pVideo);
//	shelf.add(pSoftware);
//
//	shelf.printMediaInfo();
//
//	return 0;
//}
